      1  /**

      2     Describes a quantity of an article to purchase.

      3  */

      4  public class LineItem

      5  {

      6     private int quantity;

      7     private Product theProduct;

      8

      9     /**

     10        Constructs an item from the product and quantity.

     11        @param aProduct the product

     12        @param aQuantity the item quantity

     13     */

     14     public LineItem(Product aProduct, int aQuantity)

     15     {

     16        theProduct = aProduct;

     17        quantity = aQuantity;

     18     }

     19

     20     /**

     21        Computes the total cost of this line item.

     22        @return the total price

     23     */

     24     public double getTotalPrice()

     25     {

     26        return theProduct.getPrice() * quantity;

     27     }

     28

     29     /**

     30        Formats this item.

     31        @return a formatted string of this item

     32     */

     33     public String format()

     34     {

     35        return String.format("%-30s%8.2f%5d%8.2f",

     36              theProduct.getDescription(), theProduct.getPrice(),

     37              quantity, getTotalPrice());

     38     }

     39  }